#ifndef __USER_EVENT_H__
#define __USER_EVENT_H__

typedef struct user_event
{
    char userid[32];
    char target_id[32];
    char type[32];
    lv_obj_t * type_friend_item;
    int chat_kb_open_status; // 0 关闭 1 打开
} user_event_t, *user_event_p;

extern user_event_t user_event;

// 注册相关返回码
typedef enum {
    REG_SUCCESS = 0,           // 注册成功
    REG_ERROR_USER_EXISTS,     // 用户名已存在
    REG_ERROR_DB,              // 数据库错误
    REG_ERROR_USERID_LONG,     // 账号长度超出限制
    REG_ERROR_EMPTY_INPUT,     // 账号或密码为空
    REG_ERROR_PASSWORD_FORMAT, // 密码格式不正确
    REG_ERROR_UNKNOWN          // 未知错误
} register_code_t;

typedef enum {
    LOGIN_SUCCESS = 0,          // 登录成功
    LOGIN_ERROR_USER_NOT_EXIST, // 用户名不存在
    LOGIN_ERROR_PASSWORD,       // 密码错误
    LOGIN_ERROR_DB,             // 数据库错误
    LOGIN_ERROR_EMPTY_INPUT,    // 账号或密码为空
    LOGIN_ERROR_ALREADY_LOGGED  // 已在其他设备登录
} login_code_t;

// 退出登录相关返回码
typedef enum {
    LOGOUT_STATUS_SUCCESS            = 0, // 退出登录成功
    LOGOUT_STATUS_ERROR_EMPTY_USERID = 1, // 错误：userid为空
    LOGOUT_STATUS_ERROR_DB           = 2  // 错误：数据库操作异常
} LogoutStatus;

// 私聊相关返回码
typedef enum {
    PRIVATE_CHAT_SUCCESS_RECV_FROM_CLIENT = 0, // 服务器接收成功
    PRIVATE_CHAT_SUCCESS,                      // 发送成功
    PRIVATE_CHAT_ERROR_DB,                     // 数据库错误
    PRIVATE_CHAT_ERROR_PARAM,                  // 参数错误
} private_chat_code_t;

// 聊天室相关返回码
typedef enum {
    CHATROOM_CHAT_SUCCESS_RECV_FROM_CLIENT = 0, // 服务器接收成功
    CHATROOM_CHAT_SUCCESS_SENDER,               // 发送成功
    CHATROOM_CHAT_ERROR_DB,                     // 数据库错误
    CHATROOM_CHAT_ERROR_PARAM,                  // 参数错误
} chat_room_code_t;

// 添加好友相关返回码
typedef enum {
    ADD_FRIEND_SUCCESS           = 0,  // 0：成功
    ADD_FRIEND_PARAM_ERROR       = -1, // -1：参数错误（输入JSON为空等）
    ADD_FRIEND_DATA_EXCEPTION    = -2, // -2：数据异常（含JSON解析失败、必要数据不完整）
    ADD_FRIEND_ALREADY_FRIEND    = -4, // -4：已是好友
    ADD_FRIEND_PENDING_APPLY     = -5, // -5：存在未处理的好友申请
    ADD_FRIEND_DB_ERROR          = -6, // -6：数据库操作失败（查询/插入失败等）
    ADD_FRIEND_ALREADY_FROM_NULL = -7, // -7：自己账号为空
    ADD_FRIEND_ALREADY_TO_NULL   = -8, // -8：对方账号为空
} ADD_FRIEND_ERR_CODE;

// 获取好友申请列表相关返回码
typedef enum {
    GET_FRIEND_APPLY_LIST_SUCCESS            = 0,  // 成功
    GET_FRIEND_APPLY_LIST_ERR_PARAM          = -1, // 参数错误
    GET_FRIEND_APPLY_LIST_ERR_USER_NOT_EXIST = -2, // 用户不存在
    GET_FRIEND_APPLY_LIST_ERR_DB_QUERY       = -3  // 数据库查询失败
} GetFriendApplyListErrorCode;

// 好友申请处理相关返回码
typedef enum {
    FRIEND_APPLY_SUCCESS = 0,     // 处理成功
    FRIEND_APPLY_PARAM_ERROR,     // 参数错误（如缺失字段、格式非法）
    FRIEND_APPLY_NOT_EXIST,       // 申请记录不存在（apply_id 错误）
    FRIEND_APPLY_ALREADY_HANDLED, // 申请已处理（已同意 / 已拒绝）
    FRIEND_APPLY_DB_ERROR,        // 数据库操作失败（查询 / 更新错误）
    FRIEND_APPLY_ALREADY_FRIEND,  // 已是好友 让申请人更新好友列表
} FriendApplyErrCode;

#endif